package com.hy.service;


import com.hy.Result.ResponseResult;

import com.hy.appMedicine.dto.MedicineQueryDTO;
import com.hy.medicine.*;

/**
 * @author 陌寒    Lenovo
 * @date 2025/3/13下午6:36
 * @description 类描述
 */
public interface MedicineService {
    /**
     * 获取药品分类列表(包含药品数量)
     */
    ResponseResult getCategories();

    /**
     * 分页查询药品列表
     */
    ResponseResult getMedicineList(MedicineQueryDTO queryDTO);

    /**
     * 获取药品详情(包含库存信息)
     */
    ResponseResult getMedicineDetail(Integer medicineId);

    /**
     * 获取药品库存
     */
    ResponseResult getMedicineStock(Integer medicineId);

    /**
     * 更新药品库存
     */
    ResponseResult updateMedicineStock(MedicineStockRecord record);

    /**
     * 获取药品评价列表
     */
    ResponseResult getMedicineEvaluations(Integer medicineId);




    /**
     * 检查并减少药品库存
     * @param medicineId 药品ID
     * @param quantity 购买数量
     * @return 是否成功减少库存
     */
    boolean decreaseStock(Integer medicineId, Integer quantity);

    /**
     * 检查药品库存是否充足
     * @param medicineId 药品ID
     * @param quantity 需要的数量
     * @return 库存是否充足
     */
    boolean checkStock(Integer medicineId, Integer quantity);
}
